<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    /*
    Object.create方法:
     - 创建一个对象，可以设置对象的原型链，还可以给对象的每一个属性添加描述限制
     - 属性的描述
       - value：当前属性的值
       - writalbe:当前属性是否可被修改
       - enumerable:当前属性是否可以被枚举
       - configurable:当前属性是否可以被删除,或者描述是否可以被修改
    */

    const o1 = Object.create(null, {
      name: {
        value: "xiaowang",
        writable: true,
        enumerable: true,
        configurable: false,
      },
    });
    console.log(o1);



    let value = 1;
    const o2 = Object.create(null, {
      age: {
        // value: 18,
        // writable: true,
        // enumerable: true,
        // configurable: false,

        /* 
          getter和setter函数也被称作为存取器属性,当读取当前属性的值时,getter函数调用,当设置当前属性的值时,setter函数调用
        */
       
        get () {
          return value;
        },
        set (val) {
          console.log("被设置了");
          value = val;
        },
      },
    });

    console.log(o2.age);

    setTimeout(() => {
      o2.age = 10;
    }, 2000);





  </script>
</body>

</html>